package com.neusoft.NursingHome.service;

import com.neusoft.NursingHome.po.CheckOutRecord;
import java.util.List;

public interface CheckOutRecordService {

    /**
     * 根据审核状态查询外出记录
     * @param status 审核状态 (0:已提交, 1:审核通过, 2:审核不通过)
     * @return 外出记录列表
     */
    List<CheckOutRecord> getCheckOutRecordsByStatus(Integer status);

    /**
     * 通过客户姓名模糊查询外出记录
     * @param name 客户姓名
     * @return 外出记录列表
     */
    List<CheckOutRecord> searchCheckOutRecordsByName(String name);

    /**
     * 获取所有外出记录
     * @return 外出记录列表
     */
    List<CheckOutRecord> getAllCheckOutRecords();

    /**
     * 添加外出记录
     * @param checkOutRecord 外出记录对象
     * @return 添加是否成功
     */
    boolean addCheckOutRecord(CheckOutRecord checkOutRecord);

    /**
     * 更新外出记录
     * @param checkOutRecord 外出记录对象
     * @return 更新是否成功
     */
    boolean updateCheckOutRecord(CheckOutRecord checkOutRecord);
    
    /**
     * 根据客户 ID 查询退住记录
     * @param customerId 客户的唯一标识符
     * @return 退住记录列表
     */
    List<CheckOutRecord> getCheckOutRecordsByCustomerId(Integer customerId);

    /**
     * 根据 ID 逻辑删除退住记录
     * @param id 退住记录的唯一标识符
     * @return 删除是否成功
     */
    boolean deleteCheckOutRecord(Integer id);
}